package com.ruoyi.system.api.domain;

import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.core.annotation.Excel;
import com.ruoyi.common.core.web.domain.BaseEntity;
import org.springframework.format.annotation.DateTimeFormat;

/**
 * 商家优惠券对象 coupons
 *
 * @author ruoyi
 * @date 2024-09-10
 */
@Data
public class Coupons extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /** 优惠券id，主键自增 */
    private String couponId;

    /** 优惠券名称 */
    @Excel(name = "优惠券名称")
    private String couponName;

    /** 优惠券类型：discount为折扣，full_reduce为满减，other为其他 */
    @Excel(name = "优惠券类型：discount为折扣，full_reduce为满减，other为其他")
    private String couponType;

    /** 折扣（百分比，如90.00表示9折） */
    @Excel(name = "折扣", readConverterExp = "百=分比，如90.00表示9折")
    private BigDecimal discount;

    /** 触发金额（满减的最低金额） */
    @Excel(name = "触发金额", readConverterExp = "满=减的最低金额")
    private BigDecimal triggerMoney;

    /** 优惠金额（满减时减的金额） */
    @Excel(name = "优惠金额", readConverterExp = "满=减时减的金额")
    private BigDecimal preferentialMoney;

    /** 开始时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "开始时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date start;

    /** 结束时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "结束时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date end;

    /** 投放数量 */
    @Excel(name = "投放数量")
    private String num;

    /** 已领取数量 */
    @Excel(name = "已领取数量")
    private String size;

    /** 使用开始时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "使用开始时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date expirationStart;

    /** 使用结束时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "使用结束时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date expirationEnd;

    /** 状态：active为活跃，inactive为暂停，expired为已过期，out_of_stock为已领完 */
    @Excel(name = "状态：active为活跃，inactive为暂停，expired为已过期，out_of_stock为已领完")
    private String status;
    //    每人领取数量
    private Integer limitReceive;
}

